﻿
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mssdk="winsdk" xmlns:script="urn:script" xmlns:build="urn:build" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Description" content="The gn and gN commands continue execution of the given thread without marking the exception as having been handled. This allows the application's exception handler to handle the exception."/>
<meta name="MSHAttr" content="PreferredSiteName:MSDN"/>
<meta name="MSHAttr" content="PreferredLib:/library/windows/hardware"/>
<title>gn, gN (Go with Exception Not Handled)</title>

<meta name="MS-HAID" content="r16_cmds_C_3254135f-8902-45ee-a2dc-a52049ea903c.xml"/>


<link rel="STYLESHEET" type="text/css" HREF="../common/backsdk4.css"/>





<style>
html,div { margin: 0; padding: 0;}

body {
	padding: 0px;
	margin: 0px;
	overflow: auto;
	height: 100%;
}

#winchm_template_button{
	float: right;
	width: 93px;
	top: 7px;
	position: relative;
	text-align: right;
	right: 5px;
	height: auto;
}

#winchm_template_top{
	padding: 0px;
	margin: 0px;
	border-bottom: 1px solid #9B9B9B;
	background-color: #B1CEFE;
}

#winchm_template_navigation{
	margin: 0px;
	padding-top: 7px;
	padding-left: 7px;
	padding-bottom: 3px;
	padding-right: 0px;
	font-size: 8.5pt;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: normal;
	color: #585858;
}

#winchm_template_title{
	margin: 0px;
	padding-top: 4px;
	padding-left: 7px;
	padding-bottom: 7px;
	padding-right: 0px;
	font-size: 18px; 
	font-family: Verdana, Geneva, sans-serif;
	color: #363636;
}

#winchm_template_content{
	margin-top: 20px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	width: auto  !important;
	width: 100%;
}

#winchm_template_footer{
	border-width: 1px;
	border-color: #B1CEFE;
	border-top-style: solid;
	margin-top: 15px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	padding-top: 7px;
	padding-left: 0px;
	padding-bottom: 0px;
	padding-right: 0px;
	font-family: arial, helvetica, sans-serif;
	font-size: 8.5pt;
	color: #696969;
	width: auto;
	text-align: left;
}


#winchm_template_container{
	margin: 0px;
	padding: 0px;
	position: static;
	padding-bottom: 3px;
	overflow: auto;
	background-color: #FFFFFF;
}


@media print
{
#winchm_template_container{
	position: static;	
	margin: 0px;
	padding: 5px;
	
	width: auto;
	height: auto;
	overflow: auto;
}
#winchm_template_button{
visibility:hidden;
}
}

#winchm_template_navigation A:link	{text-decoration: none; color:#004080}
#winchm_template_navigation A:visited  {text-decoration: none; color: #004080}
#winchm_template_navigation A:active {text-decoration: none; color: #004080 }
#winchm_template_navigation A:hover {text-decoration: none;color: #0080FF}

A:link	{text-decoration: underline; color:#0033CC}
A:visited  {text-decoration: underline; color: #0033CC}
A:active {text-decoration: underline; color: #0033CC }
A:hover {text-decoration: underline;color: #FF0000;}
</style>
<script type="text/javascript">
function isMobile(){
Agent = window.navigator.userAgent;
if (Agent.indexOf("iPhone")>=1 || Agent.indexOf("iPad")>=1 || Agent.indexOf("iPod")>=1 || Agent.indexOf("Android")>=1){
return true;
}else{
return false;	
}

}
function d_onresize(){
if (window.navigator.userAgent.indexOf("MSIE")>=1){
document.getElementById('winchm_template_container').style.pixelWidth = document.body.offsetWidth - 3;
document.getElementById('winchm_template_container').style.pixelHeight = document.body.offsetHeight - document.getElementById('winchm_template_top').offsetHeight - 4;
}
document.getElementById('winchm_template_container').style.top = document.getElementById('winchm_template_top').offsetHeight + 'px';
}

function d_onbeforeprint(){
document.getElementById('winchm_template_container').style.width = 'auto';
document.getElementById('winchm_template_container').style.height = 'auto';
}

function d_onafterprint(){
d_onresize();
}

if(!isMobile()){

window.onload = d_onresize;
window.onresize = d_onresize;
window.onbeforeprint = d_onbeforeprint;
window.onafterprint = d_onafterprint;

document.write("<style>\n");
document.write("body {overflow: hidden;}\n");
document.write("#winchm_template_container {position: absolute;overflow: auto;top : 0px;right: 0px;bottom: 0px;left: 0px;}\n");
document.write("</style>\n");
}

</script>
</head>
<body><script language="JavaScript" type="text/JavaScript">
function syn(){
if(parent.nav.tree){
 if(parent.nav.tree.loaded){
  parent.nav.tree.selectNode(2000);
 }else{
  setTimeout("syn()",500);
}
  }else{
  setTimeout("syn()",500);
  }}
if(parent!=self){
  setTimeout("syn()",100);
}else{
  parent.location.href = "../../index.htm?page=debugger/gn__gn__go_with_exception_not_handled_.htm";
}
originalOnload = window.onload;
if(originalOnload==null){
window.onload = function(){parent.contentLoaded = true;};
}else{
window.onload = function(){originalOnload();parent.contentLoaded = true;};
}
</script> 


<div id="winchm_template_top">
	<div id="winchm_template_button"><A href="gh__go_with_exception_handled_.htm" title="Previous topic"><img id="winchm_template_prev" alt="Previous topic" src="../template2/btn_prev_n.gif" border="0"></a><A href="gu__go_up_.htm" title="Next topic"><img id="winchm_template_next" alt="Next topic" src="../template2/btn_next_n.gif" border="0"></a></div>
	<div id="winchm_template_navigation">Help &gt; 
<A href="introduction6.htm">Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)</A> &gt; <A href="debugger_reference.htm">Debugger Reference</A> &gt; <A href="debugger_commands.htm">Debugger Commands</A> &gt; <A href="commands.htm">Commands</A> &gt; </div>
	<div id="winchm_template_title">gn, gN (Go with Exception Not Handled)</div>
</div>
<div id="winchm_template_container">
	<div id="winchm_template_content"><div id="mainSection"><p>The <b>gn</b> and <b>gN</b> commands continue execution of the given thread without marking the exception as having been handled. This allows the application's exception handler to handle the exception.</p>
<p>User-Mode Syntax</p>
<pre class="syntax">[<b>~</b>Thread] <b>gn</b>[<b>a</b>] [<b>=</b> StartAddress] [BreakAddress ... [; BreakCommands]] 
[<b>~</b>Thread] <b>gN</b>[<b>a</b>] [<b>=</b> StartAddress] [BreakAddress ... [; BreakCommands]] </pre>
<p>Kernel-Mode Syntax</p>
<pre class="syntax"><b>gn</b>[<b>a</b>] [<b>=</b> StartAddress] [BreakAddress ... [; BreakCommands]] 
<b>gN</b>[<b>a</b>] [<b>=</b> StartAddress] [BreakAddress ... [; BreakCommands]] </pre>
<p></p>
<h2><a id="ddk_cmd_go_with_exception_not_handled_dbg"></a><a id="DDK_CMD_GO_WITH_EXCEPTION_NOT_HANDLED_DBG"></a>Parameters</h2>
<p></p>
<dl>
<dt><a id="_______Thread______"></a><a id="_______thread______"></a><a id="_______THREAD______"></a>       <i>Thread</i>      </dt>
<dd>
<p>(User mode only)  Specifies the thread to execute. This thread must have been stopped by an exception. For syntax details, see <a href="#Bookmark1928">Thread Syntax</a>.</p>
</dd>
<dt><a id="_______a______"></a><a id="_______A______"></a>       <b>a</b>      </dt>
<dd>
<p>Causes any breakpoint created by this command to be a processor breakpoint (like those created by <a href="#Bookmark1975"><b>ba</b></a>) rather than a software breakpoint (like those created by <a href="#Bookmark1980"><b>bp</b></a> and <b>bm</b>). If <i>BreakAddress</i> is not specified, no breakpoint is created and the <b>a</b> flag has no effect.</p>
</dd>
<dt><a id="_______StartAddress______"></a><a id="_______startaddress______"></a><a id="_______STARTADDRESS______"></a>       <i>StartAddress</i>      </dt>
<dd>
<p>Specifies the address where execution should begin. If this is not specified, the debugger passes execution to the address where the exception occurred. For more syntax details, see <a href="#Bookmark1927">Address and Address Range Syntax</a>.</p>
</dd>
<dt><a id="_______BreakAddress______"></a><a id="_______breakaddress______"></a><a id="_______BREAKADDRESS______"></a>       <i>BreakAddress</i>      </dt>
<dd>
<p>Specifies the address for a breakpoint. If <i>BreakAddress</i> is specified, it must specify an instruction address (that is, the address must contain the first byte of an instruction). Up to ten break addresses, in any order, can be specified at one time. If <i>BreakAddress</i> cannot be resolved, it is stored as an <a href="#Bookmark1353">unresolved breakpoint</a>. For more syntax details, see <a href="#Bookmark1927">Address and Address Range Syntax</a>.</p>
</dd>
<dt><a id="_______BreakCommands______"></a><a id="_______breakcommands______"></a><a id="_______BREAKCOMMANDS______"></a>       <i>BreakCommands</i>      </dt>
<dd>
<p>Specifies one or more commands to be automatically executed when the breakpoint specified by <i>BreakAddress</i> is hit. The <i>BreakCommands</i> parameter must be preceded by a semicolon. If multiple <i>BreakAddress</i> values are specified, <i>BreakCommands</i> applies to all of them.</p>
<div class="alert"><b>Note</b>    The <i>BreakCommands</i> parameter is only available when you are embedding this command within a command string used by another command -- for example, within another breakpoint command or within an except or event setting. On a command line, the semicolon will terminate the command, and any additional commands listed after the semicolon will be executed immediately after the <b>gn</b> or <b>gN</b> command is done.</div>
<div> </div>
</dd>
</dl>
<h3><a id="Environment"></a><a id="environment"></a><a id="ENVIRONMENT"></a>Environment</h3>
<table>
<tr>
<td>
<p><b>Modes</b></p>
</td>
<td>
<p>user mode, kernel mode</p>
</td>
</tr>
<tr>
<td>
<p><b>Targets</b></p>
</td>
<td>
<p>live debugging only</p>
</td>
</tr>
<tr>
<td>
<p><b>Platforms</b></p>
</td>
<td>
<p>all </p>
</td>
</tr>
</table>
<p> </p>
<h3><a id="Additional_Information"></a><a id="additional_information"></a><a id="ADDITIONAL_INFORMATION"></a>Additional Information</h3>
<p>For other methods of issuing this command and an overview of related commands, see <a href="#Bookmark1262">Controlling the Target</a>. </p>
<h2>Remarks</h2>
<p>If the debugger is not stopped at a breakpoint, <b>gn</b> and <b>gN</b> behave identically. If the debugger is stopped at a breakpoint, <b>gn</b> will not work; you must capitalize the "N" to execute this command. This is a safety precaution, since it is rarely wise to continue a breakpoint unhandled.</p>
<p>If you use the <i>BreakAddress</i> parameter to set a breakpoint, this new breakpoint will only be triggered by the current thread. Other threads that execute the code at that location will not be stopped.  </p>
<p>If <i>Thread</i> is specified, then the <b>gn</b> command is executed with the specified thread unfrozen and all others frozen. For example, if the <b>~123gn</b>, <b>~#gn</b>, or <b>~*gn</b> command is specified, the specified threads are unfrozen and all others are frozen.</p></div></div>	
	<div id="winchm_template_footer">Copyright &copy; 2019. All rights 
reserved. (To change the copyright info, just edit it in template.)</div>
</div>

</body>
</html>
